The basic interface of all interfaces. More...
#include <funknown.h>
Public Member Functions | |
virtual tresult | queryInterface (const TUID iid, void **obj)=0 |
Query for a pointer to the specified interface. | |
virtual uint32 | addRef ()=0 |
Adds a reference and return the new reference count. | |
virtual uint32 | release ()=0 |
Releases a reference and return the new reference count. | |
Static Public Member Functions | |
static int32 | atomicAdd (int32 &value, int32 amount) |
Static Public Attributes | |
static const FUID | iid |
The basic interface of all interfaces.
Interfaces are identified by 16 byte Globally Unique Identifiers. The SDK provides a class called FUID for this purpose.
Query for a pointer to the specified interface.
Returns kResultOk on success or kNoInterface if the object does not implement the interface. The object has to call addRef when returning an interface.
iid | : (in) 16 Byte interface identifier (-> FUID) | |
obj | : (out) On return, *obj points to the requested interface |
virtual uint32 addRef | ( | ) | [pure virtual] |
Adds a reference and return the new reference count.
virtual uint32 release | ( | ) | [pure virtual] |
Releases a reference and return the new reference count.
If the reference count reaches zero, the object will be destroyed in memory.
Reimplemented in IBStream, ISizeableStream, ICloneable, IErrorContext, IPersistent, IAttributes, IAttributes2, IPluginBase, IPluginFactory, IPluginFactory2, IPluginFactory3, IStringResult, IString, IUpdateHandler, IDependent, IPlugView, and IPlugFrame.